///
/// Base class for all game states such as the menu/playing states
///

#pragma once

namespace Core
{
    class Game;
    
    class GameState
    {
    // Structors
    public:
        GameState(Game &game) : game(game) {}
        
    // State updating methods
    public:
        virtual void Start() = 0;
        virtual bool Update() = 0;
        virtual void End() = 0;
        
    // Members
    protected:
        Game &game;
    };
    
}